package com.medical.blood.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.medical.blood.entity.BloodCollection;
import com.medical.blood.mapper.BloodCollectionMapper;
import org.springframework.stereotype.Service;

@Service
public class BloodCollectionService extends ServiceImpl<BloodCollectionMapper, BloodCollection> {

    /**
     * 保存采血记录（设备完成采血后调用）
     * @param collection 采血详情（含用户ID、样本ID、设备编号等）
     * @return 保存结果
     */
    public boolean saveCollection(BloodCollection collection) {
        // 校验样本ID唯一性（避免重复存储）
        if (baseMapper.selectById(collection.getSampleId()) != null) {
            throw new RuntimeException("样本ID已存在，无法重复存储");
        }
        return save(collection);
    }

    /**
     * 根据样本ID查询采血记录
     * @param sampleId 样本ID
     * @return 采血详情
     */
    public BloodCollection getBySampleId(Long sampleId) {
        return lambdaQuery()
                .eq(BloodCollection::getSampleId, sampleId)
                .one();
    }
}